<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>1-构造函数</title>
	</head>
	<body>
		<script type="text/javascript">
			/**
			 * 定义构造函数
			 * @param {Object} brand
			 * @param {Object} price
			 */
			function Mobile(brand,price){
				this.brand = brand;
				this.price = price;
				this.sendmsg = function(){
					console.log('发短信...');
				}
			}
			
			var hw = new Mobile('华为p30',299);
			var al = new Mobile('苹果13',199);
			hw.sendmsg();
			//出现的问题就是
			console.log(hw.sendmsg);
			/**
			    function (){
					console.log('发短信...');
				}
			 */
			console.log(hw.sendmsg===al.sendmsg);//false
			//那这说明了什么?
			/**
			 * 解释如下：
			 * 构造函数中定义的属性 brand,price为基本数据类型，在你通过关键字new实例化时
			 * 就在内存中开辟了空间
			 * brand,price作为基本数据类型，它呢可以直接赋值
			 * 但是sendmsg它是一个方法，也就是复杂数据类型，它会在内存中再次开辟不同的空间
			 * 得到不同的内存地址
			 */
			
			
			
		</script>
	</body>
</html>